﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.IO;
using SocketLib;
using System.Drawing.Imaging;

namespace LogClient
{
	public partial class Form1 : Form
	{
		//private static string fileName = "";
		SocketLib.Client svc = new SocketLib.Client();
		public Form1()
		{
			InitializeComponent();
		}

		private void button1_Click(object sender, EventArgs e)
		{
			svc.Connect("172.29.226.77", 3451);
			svc.ReceiveEventHandler += new SocketLib.Client.ReceiveDelegate(svc_ReceiveEventHandler);

		}

		void svc_ReceiveEventHandler(object sender, SocketLib.Client.ReceiveEventArgs e)
		{
			
			MessageBox.Show(e.msg);
		}


		private void button2_Click(object sender, EventArgs e)
		{
			//svc.SendFile("F:\\Cisco.VPN.Client.rar");
			//svc.SendFile("F:\\winxpsp3.iso");
			//svc.SendFile("F:\\10年运动会 002.jpg");
            svc.SendMsg("aaaaaaaaaaaaaaaaaaaaaa");
          
			
		}

		private void button3_Click(object sender, EventArgs e)
		{
			svc.Closed();
		}

		private void button4_Click(object sender, EventArgs e)
		{

			IntPtr dc1 = CreateDC("DISPLAY", null, null, (IntPtr)null);

			//创建显示器的DC  

			Graphics g1 = Graphics.FromHdc(dc1);

			//由一个指定设备的句柄创建一个新的Graphics对象  

			Bitmap MyImage = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, g1);

			//根据屏幕大小创建一个与之相同大小的Bitmap对象  

			Graphics g2 = Graphics.FromImage(MyImage);

			//获得屏幕的句柄  

			IntPtr dc3 = g1.GetHdc();

			//获得位图的句柄  

			IntPtr dc2 = g2.GetHdc();

			//把当前屏幕捕获到位图对象中  

			BitBlt(dc2, 0, 0, Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, dc3, 0, 0, 13369376);

			//把当前屏幕拷贝到位图中  

			g1.ReleaseHdc(dc3);

			//释放屏幕句柄  

			g2.ReleaseHdc(dc2);

			//释放位图句柄  

			MyImage.Save("c:\\MyJpeg.jpg", ImageFormat.Jpeg);
			
			

			this.Show();
		}

		#region  API
		[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]

		private static extern bool BitBlt(

		IntPtr hdcDest,   //目标设备的句柄  

		int nXDest,   //   目标对象的左上角的X坐标  

		int nYDest,   //   目标对象的左上角的X坐标  

		int nWidth,   //   目标对象的矩形的宽度  

		int nHeight,   //   目标对象的矩形的长度  

		IntPtr hdcSrc,   //   源设备的句柄  

		int nXSrc,   //   源对象的左上角的X坐标  

		int nYSrc,   //   源对象的左上角的X坐标  

		System.Int32 dwRop   //   光栅的操作值  

		);

		[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]

		private static extern IntPtr CreateDC(

		string lpszDriver,   //   驱动名称  

		string lpszDevice,   //   设备名称  

		string lpszOutput,   //   无用，可以设定位"NULL"  

		IntPtr lpInitData   //   任意的打印机数据  

		);
		#endregion

		private static byte[] ImageToByteArray(System.Drawing.Image imageIn)
		{
			MemoryStream ms = new MemoryStream();
			imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
			return ms.ToArray();
		}

		//private void GetFile(int num)
		//{
	
		//    FileStream writer = new FileStream("d:\\123.rar", FileMode.OpenOrCreate, FileAccess.Write);
			
		//    while (num != 0)
		//    {

		//        string msg = Encoding.Default.GetString(bb, 0, num);
		//        if (msg == "END")
		//            break;
		//        writer.Write(bb, 0, num);
		//    }
		//    writer.Write(bb, 0, num);
		//    writer.Close();
		//}
	}
}
